3.10 获取form表单上传的文件和普通数据
form表单支持非文件数据(普通数据)和文件同时上传,此时上传方式是POST,编码方式必须是form-data
扩展:form表单发送POST请求时,默认请求体数据的编码格式是 application/x-www-form-urlencoded,可简称为urlencoded.
视图函数,文件数据使用request.FILES接收,非文件数据使用request.POST
URL
from django.urls import path
from . import views
urlpatterns = [
path("test",views.test),
#一旦调用test1, 那么kwargs将会以关键字的a=100,b=200这样的形式传给test1
path("test1", views.test1,kwargs={"a":100,"b":200}),
#test2(request,year,month
path( path("test2/ < year > / < month > ", views.test2),
path("test3", views.test3),
path("test5", views.test5),
path("test6", views.test6),
path("test7", views.test7),
path("test8", views.test8),
path("test9", views.test9),
path("test10", views.test10),
]
views
def test10(request):
name=request.POST.get("name11")
file=request.FILES.getlist("file22")
print(name,file)
return HttpResponse("显示form")
html10
< html >
< head >
< meta charset="UTF-8" >
< meta http-equiv="X-UA-Compatible" content="ie=edge" >
< title > Document < /title >
< /head >
< body >
< h1 > 上传文件 < /h1 >
< form action="http://127.0.0.1:8000/app03/test10" method="post" enctype="multipart/form-data" >
< P > 用户名: < input type="text" name="name11" > < /P >
< P > 请选择文件: < input type="file" name="file22" multiple > < /P >
< input type="submit" value="上传" >
< /form >
< /body >
< /html >
返回:
wei [ < InMemoryUploadedFile: ccapiserver.exe (application/x-msdownload) > , < InMemoryUploadedFile: comerr64.dll (application/x-msdownload) > ]
[01/Jun/2024 21:35:05] "POST /app03/test10 HTTP/1.1" 200 10